﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using Chilis.CRM.TransferObjects;

namespace Chilis.CRM.Communication
{
    [ServiceContract]
    public interface ICRMService
    {

        [OperationContract]
        IList<TipoPublicacion> ListarTipoPublicacion();

        [OperationContract]
        TipoPublicacion ObtenerTipoPublicacion(int idTipoPublicacion);

        [OperationContract]
        bool RegistrarTipoPublicacion(TipoPublicacion entidad);

        [OperationContract]
        bool ActualizarTipoPublicacion(TipoPublicacion entidad);

        [OperationContract]
        bool EliminarTipoPublicacion(int idTipoPublicacion);


        [OperationContract]
        IList<TipoComentario> ListarTipoComentario();

        [OperationContract]
        TipoComentario ObtenerTipoComentario(int idTipoComentario);

        [OperationContract]
        bool RegistrarTipoComentario(TipoComentario entidad);

        [OperationContract]
        bool ActualizarTipoComentario(TipoComentario entidad);

        [OperationContract]
        bool EliminarTipoComentario(int idTipoComentario);


        [OperationContract]
        IList<ClaseComentario> ListarClaseComentario();

        [OperationContract]
        ClaseComentario ObtenerClaseComentario(int idClaseComentario);

        [OperationContract]
        bool RegistrarClaseComentario(ClaseComentario entidad);

        [OperationContract]
        bool ActualizarClaseComentario(ClaseComentario entidad);

        [OperationContract]
        bool EliminarClaseComentario(int idClaseComentario);


        [OperationContract]
        String ListarClientesRFM();

        [OperationContract]
        void ModificarAccessToken(string accessToken);

        [OperationContract]
        void RegistrarPublicacion(Publicacion publicacion);

    }
}
